package zhongbo.java.air.auth.service;

import zhongbo.java.air.auth.model.User;
import zhongbo.java.air.common.vo.PageVo;

/**
 * 说明：
 *
 * @author 钟波dellNotebook
 * @since 2025年03月29日 星期六 12:10:47
 */
public interface IUserService {

    /**
     * 添加
     *
     * @param user 实体信息
     * @return 添加结果
     */
    User add(User user);

    /**
     * 删除
     *
     * @param userId userId
     * @return 删除结果
     */
    String delete(String userId);

    /**
     * 修改
     *
     * @param edit 修改实体
     * @return 结果
     */
    User edit(User edit);

    /**
     * 查询一条
     *
     * @param userId 查询 userId
     * @return 结果
     */
    User findOne(String userId);

    /**
     * 分页查询用户列表
     * 如果传了userName, 使用userName进行模糊查找
     *
     * @param userName    用户名称(模糊查询)
     * @param page        分页页码
     * @param pageSize    分页大小
     * @param oderByField 按某个字段排序
     * @param orderByAsc  是否正序排序(默认倒序)
     * @return 结果
     */
    PageVo<User> findPage(String userName, Integer page, Integer pageSize, String oderByField, Boolean orderByAsc);

    /**
     * 根据用户名和密码查找用户
     *
     * @param userName 用户名
     * @param passWord 密码
     * @return 用户信息
     */
    User findByUserNameAndPassWord(String userName, String passWord);

    /**
     * 根据用户名和密码查找用户
     *
     * @param userName 用户名
     * @return 用户信息
     */
    User findByUserName(String userName);
}
